package com.btm.btmchat.util;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource;
import org.springframework.stereotype.Component;

import java.io.IOException;
import java.nio.charset.StandardCharsets;

/**
 * PromptUtils 类用于管理和获取与 MySQL 相关的提示模板资源。
 * 该类通过 Spring 的依赖注入机制加载指定的资源文件。
 */
@Component
public class PromptUtils {

    @Value("classpath:prompt/system/mysql_v7.st")
    private Resource mysqlSystemPrompt;

    @Value("classpath:prompt/user/user_prompt_template_v1.upt")
    private Resource userPromptTemplate;

    /**
     * 获取 MySQL 提示模板资源。
     *
     * @return 返回 MySQL 提示模板的 Resource 对象。
     */
    public Resource getMysqlSystemPrompt() {
        return mysqlSystemPrompt;
    }

    /**
     * 获取用户提示词模板并替换占位符
     * @param userDescription 用户描述，用于替换模板中的占位符
     * @return 替换占位符后的最终提示词
     */
    public String getUserPrompt(String userDescription) {
        try {
            String template = new String(userPromptTemplate.getInputStream().readAllBytes(), StandardCharsets.UTF_8);
            return template.replace("{{user_description}}", userDescription);
        } catch (IOException e) {
            throw new RuntimeException("Failed to load user prompt template", e);
        }
    }
}